Skip to content

Guard against missing rbs_collection.yaml ignore entries#1282

Merged
myronmarston merged 1 commit into
mainfrom
myron/rbs-collection-ignore-guard
Jul 1, 2026
Merged

Guard against missing rbs_collection.yaml ignore entries#1282
myronmarston merged 1 commit into
mainfrom
myron/rbs-collection-ignore-guard

Conversation

@myronmarston

Copy link
Copy Markdown
Collaborator

Why

A batch of dependency-bump PRs (#1236, #1245, #1267, #1272, #1276, #1277, #1279, #1280) are all failing Steep with declaration is duplicated errors.

Root cause: the new elasticgraph-json_ingestion gem ships RBS signatures (sig/) and is a dev dependency of 6 other EG gems, but it was never added to rbs_collection.yaml with ignore: true. When rbs collection install runs, it pulls the gem's signatures in via bundler while those same signatures also exist locally in this monorepo, so Steep sees duplicate declarations and fails.

Every EG gem that ships signatures must be ignored in rbs_collection.yaml for this reason (see the explanatory comment in that file). Nothing in CI caught the omission.

What

  • Fix: add elasticgraph-json_ingestion to rbs_collection.yaml with ignore: true.
  • Guard: add a spec to gem_spec.rb asserting that the EG gems with a sig/ directory match (via match_array) the elasticgraph* entries marked ignore: true. This catches both a newly-added gem missing its entry and a stale entry, so this mistake can't recur silently.

The bootstrap gem elasticgraph (no dash) ships no signatures and is correctly exempt.

Verification

  • New spec fails before the yaml fix (missing elements: ["elasticgraph-json_ingestion"]), passes after.
  • bundle exec rspec elasticgraph/spec/unit/elastic_graph/gem_spec.rb → 205 examples, 0 failures.
  • script/type_check → No type error detected. 🫖

🤖 Generated with Claude Code

Every EG gem that ships RBS signatures must be listed in
`rbs_collection.yaml` with `ignore: true`. Otherwise `rbs collection
install` pulls the gem's signatures in via bundler while those same
signatures also exist locally in this monorepo, and Steep fails with
"declaration is duplicated" errors.

`elasticgraph-json_ingestion` was added without this entry, breaking
Steep on a batch of dependency-bump PRs. Nothing in CI caught the
omission, so this adds a spec asserting the gems with a `sig` dir match
the ignored EG entries in the config (catching both missing and stale
entries), and fixes the immediate omission.

Generated with Claude Code
@myronmarston myronmarston marked this pull request as ready for review June 30, 2026 23:54
@myronmarston myronmarston merged commit 827e510 into main Jul 1, 2026
24 checks passed
@myronmarston myronmarston deleted the myron/rbs-collection-ignore-guard branch July 1, 2026 00:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants